查看原文
其他

如果美国封了DNS,俄罗斯将从网络消失?(文末送书)

The following article is from 编程技术宇宙 Author 轩辕之风O

点击关注公众号,一周多次包邮送书

作者轩辕之风O

来源:编程技术宇宙(ID:xuanyuancoding)

俄乌战争还在持续,网络中的战争也同样在上演着。

从最近几天的微博热搜就能看出,舆论阵地是何等的重要,一张图、一个视频、一段文字就能把人带跑偏,可见保持独立思考和判断的能力多么难能可贵。

网络阵地如此之重要,大家有没有想过一个问题:美国那么爱制裁,互联网是美国人发明的,如果美国制裁俄罗斯互联网,把根域名服务器封了,俄罗斯是否就从互联网消失了?

美国会不会干出这事儿我不知道,咱们就从技术上来分析一下,通过封禁根服务器,能不能实现将一个国家从互联网消失。

要回答这个问题,需要了解一些互联网工作的基本常识。

我们平时上网,其本质就是用你手里的客户端软件(比如微博、抖音、微信、浏览器等等)去访问它们背后的服务器(微博服务器、抖音服务器、微信服务器、其他网站的服务器等等),请求数据然后呈现给你。

那如何访问呢?

这些服务器都有属于它们的IP地址,这是一个在互联网中使用的身份标识号码,凭借这个数字,我们手机和电脑发出的网络数据包就能被网络中的“快递系统”不断转发,最终投递到目标服务器。

但这些号码数字对我们人类来说没那么好记忆,所以,人们发明了域名这个东西。

www.baidu.com,这就是百度的域名。

这个东西可比数字好记多了!

但互联网的协议是用IP地址进行身份识别的,现在搞了这么个域名,怎么用起来呢?

计算机科学家们又搞了一个翻译系统出来:域名解析系统DNS

在访问真正的服务器之前,先通过这个解析系统,把这个域名“翻译”成对应的IP地址,拿到这个IP地址后,再去进行后面的网络访问。

当然,这个过程都被现在的软件自动化的进行了,比如你在浏览器里输入www.baidu.com之后按下回车,浏览器自动完成了这个解析的过程,这对我们普通的用户来说是透明的(看不见的)。

那么问题来了,这个负责域名解析的东西是什么样的?

它是一台服务器吗?它位于哪个地方呢?

首先,它不是一台服务器,万一崩了,那全世界都上不了网了。

其次,它也不是一个简单的多点集群,全世界的网站这么多,每个节点要存储所有的域名——IP映射关系,那也是不切实际的。

事实上,真正的域名解析系统它是一个分层级的庞大系统。

  • 本地DNS服务器
  • 权威域名服务器
  • 顶级域名服务器
  • 根域名服务器

我们每个电脑和手机里面都设置了本地DNS服务器(简称LDNS),需要解析域名的时候,就向LDNS发出请求。

大家可以在自己的电脑上执行nslookupipconfig命令,查看自己电脑上配置的DNS服务器地址是什么:

我们以www.example.com这个域名为例,来看一下DNS的解析过程。

  • 你的电脑问LDNS:www.example.com的IP是什么?
  • LDNS:查无此域名,问一下根服务器看看:www.example.com的IP是什么?
  • 根服务器:我可是十三大长老,哪管这些。你去问负责.com域名解析的顶级域名服务器吧,它肯定知道。
  • LDNS问.com顶级域名服务器:大佬,www.example.com的IP是什么?
  • .com顶级域名服务器:这我也不知道,你问问ns.example.com看看,它负责解析所有example.com下面的域名。
  • LDNS问ns.example.com:大佬,www.example.com的IP是什么?
  • ns.example.com:这我知道,是xxx.xxx.xx.xxx
  • LDNS:谢谢大佬
  • LDNS回复你的电脑:查到了,是xxx.xxx.xx.xxx,可累死我了···

整个过程大概是下面这图所示,不过需要说明的是,并不是每一次DNS请求都会经历这样的过程,有些时候中间节点有缓存,路径就会变得不一样了。

由此可见,根域名解析服务器在整个过程中扮演的角色至关重要。

那么,问题又来了,全世界有多少根DNS?

答案是13个,其中10个在美国,英国和瑞典各1个,日本1个。

这13个根的名字和IP在这里可以公开查阅:

https://www.internic.net/domain/named.root

他们的名字从A.root-servers.netM.root-servers.net

其中,A开头那个是主根,其他12个(B、C、D、E、F、G、H、I、J、K、L、M)是辅根。

由于技术上的历史原因,根服务器只有13个,想知道具体原因的朋友,可以看看这篇文章:

为何根域名服务器只有13个?

但是需要注意的是,这里说的13个,并非真的只有13台物理机器,全球的互联网如果都只靠这十三台计算机维系,那风险还是很大的。

在逻辑上,根确实只有13个,但每个根都有镜像啊!

所以,根服务器实际上总共有1518个(截止2022-02-27)之多,在下面这个网站,你可以看到全球所有的根服务器分布情况:

https://root-servers.org/

从A到M,每一个根服务器背后都有许多镜像节点,分布在全球不同的地方。

下面是我们中国所拥有的根镜像服务器:

单是北京,就拥有8个节点。

再次注意,根服务器的IP只有13个,但是却有一千多个物理服务器节点。

那这是怎么办到的呢?这里用到了一个叫“任播”的网络技术。简单理解就是:可以让世界上不同的多台计算机,拥有同一个IP地址

注意,这里的IP地址是公网地址,如果是私有地址那没啥讨论的。

小伙伴儿们可能一脸问号了,具体在网络路由的时候,具体选择哪一台计算机呢?

这个问题说来话长,也不是今天的重点,感兴趣的同学可以看看这个:

https://docs.microsoft.com/zh-cn/windows-server/networking/dns/deploy/anycast

我国境内发出的对根DNS的请求,基本上都由国内的镜像完成了,并没有路由到国外的根服务器上去。

注意这一点,非常重要!

这么多台根服务器,它们是如何协同工作的呢?

简单来说:所有的辅根从主根同步数据,而所有的镜像从对应的根服务器来同步数据。

按照这个逻辑,A根就是超级大boss,只要它改了,其他一千多个节点都得跟着改。

那么,如果某一天美国把A根中关于.cn的相关信息全部删掉,那全世界的根服务器都会跟着删掉,那中国将从互联网消失吗?

这个时候,建设自主可控的根镜像服务器的重要性就体现出来了。

服务器在我这儿,我不同步删除的内容,或者同步完加上删除的内容,就能破解这个问题!

因为前面交代了,国内对根DNS的请求,基本都是国内镜像完成的,并没有路由出去。

当然,其他国家的根镜像我们控制不了,他们可能无法访问.cn的域名,但只要他们想要访问,就会加回去,并拒绝同步美国删除的内容,如此一来,最后只有美国人自己访问不了.cn的域名。

同样的道理也适用于俄罗斯,在root-servers网站上,也可以看到俄罗斯同样建设了许多的根镜像服务器,比如首都莫斯科:

他们同样可以拒绝同步删除俄罗斯的国家域名.ru的解析信息。

所以,想通过封禁根域名解析服务让一个国家从互联网消失,没那么容易。

但如果是一个没有建设根镜像服务器的国家呢?

end


👇👇👇👇👇
程序员架构联合北京大学出版社送书啦~~
推荐理由:《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。
推荐理由:本书主要面向希望掌握智能技术的初学者。通过使用类比法、比较法和图例解释,结合真实世界中的案例分析,我们希望《人工智能算法图解》能使人工智能算法更易于理解和实现,并希望在此基础上帮助读者掌握利用智能技术解决实际问题的途径和方法。


活动规则:我们将从精选留言中随机抽取 5名 小伙伴赠书

留言要求:内容与本文核心信息相关(附书名) & 每人仅限精选一条留言

截止时间:2022 年 3 月 16 日 09:00 整

特别声明:开奖后2天未联系视为自动放弃

 书籍数量有限  开奖后,先选先得。


·················END·················

推荐阅读

•   地位稳固,Python仍是全球最流行语言?•   为游戏而生,360出品,必属“精品”......(文末送书)•   万一 Github不让用了,Gitee同步指南请收好•   警惕!英伟达代码签名证书泄露 黑客用来伪造驱动程序•   史上首次!苹果/谷歌/微软/火狐合力解决Web兼容性问题•   阿里云盘推出VIP会员,网友:该来的还是会来(文末送书)•   不下载APP就不能看全文?工信部出手了...


👇更多内容请点击👇


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存